import { getAllConfigCacheData } from '@/api/system/config'
import {isNotVoid} from "../../utils/util";
import cache from '@/plugins/cache'
const useSysConfigStore = defineStore(
  'sysConfig',
  {
    state: () => ({
      sysConfig: new Array()
    }),
    actions: {
      // 获取系统参数
      getSysConfig(_key) {
        if (_key == null && _key == "") {
          return null;
        }
        try {
          for (let i = 0; i < this.sysConfig.length; i++) {
            if (this.sysConfig[i].key == _key) {
              return this.sysConfig[i].value;
            }
          }
        } catch (e) {
          return null;
        }
      },
      // 获取系统参数，如果不存在，返回默认值
      getSysConfigByDefVal(_key,defaultVal) {
        if (_key == null && _key == "") {
          return defaultVal;
        }
        try {
          if(this.sysConfig.length==0){
             this.initSysConfig();
          }
            for (let i = 0; i < this.sysConfig.length; i++) {
              if (this.sysConfig[i].key == _key) {
                return this.sysConfig[i].value;
              }
            }
            return defaultVal;
        } catch (e) {
          return defaultVal;
        }
      },
      // 设置系统参数
      setSysConfig(_key, value) {
        if (_key !== null && _key !== "") {
          this.sysConfig.push({
            key: _key,
            value: value
          });
        }
      },
      // 删除系统参数
      removeSysConfig(_key) {
        var bln = false;
        try {
          for (let i = 0; i < this.sysConfig.length; i++) {
            if (this.sysConfig[i].key == _key) {
              this.sysConfig.splice(i, 1);
              return true;
            }
          }
        } catch (e) {
          bln = false;
        }
        return bln;
      },
      // 清空系统参数
      cleanSysConfig() {
        this.sysConfig = new Array();
      },
      // 初始系统参数
      initSysConfig() {
        this.cleanSysConfig();
        getAllConfigCacheData().then(resp => {
          let dictObjKeys=Object.keys(resp.result);
          dictObjKeys.forEach((key,val)=>{
            useSysConfigStore().setSysConfig(key, resp.result[key]);
          })
        })
      }
    }
  })

export default useSysConfigStore
